基础功能
数据类型
GBase 8s拥有完善的数据类型管理体系,且内置了日常应用所能涉及的所有数据类型,完全可以满足企业数据管理的需求。支持的内置数据类型包括:
- 数字类型:SMALLINT、INTEGER、INT8、BIGINT、DECIMAL、NUMERIC、FLOAT、SMALLFLOAT、REAL、DOUBLE、LONG、SERIAL、SERIAL8、BIGSERIAL、MONEY。
- 字符类型:CHAR、VARCHAR、LVARCHAR、NCHAR、NVARCHAR、CHARACTER VARYING。
- 日期类型:DATE、DATETIME、INTERVAL。
- 大对象类型:TEXT、BYTE、CLOB、BLOB。
- JSON/BSON数据类型。
- XML数据类型。
- 其他类型:BOOLEAN、ROW。
GBase 8s支持简单大对象和智能大对象数据类型,可存储文本、图形、声音等内容。
- 简单大对象(Simple large object)
- Text:大字符对象,存储大文本信息,最大支持2G。
- Byte:二进制数据,最大支持2G。
- 智能大对象(Smart large object)
- CLOB:智能大字符对象,最大支持4T。
- BLOB:智能二进制对象,最大支持4T。
GBase 8s支持复杂数据类型的定义,主要有Row数据类型、集合数据类型。
- Row数据类型 (Row Data Type)。
- 集合数据类型 (Collection Data Type),包括Set、List、Multiset。
GBase 8s提供用户定义的数据类型(UDT)功能,通过UDT用户可以定义自己的数据类型。
锁和隔离级别
锁技术
- 锁粒度:GBase 8s提供6种粒度的锁,可满足各种并发模式下的需求。
锁粒度 | 说明 |
---|---|
数据库锁 | 针对整个数据库的锁 |
表锁 | 针对整个表的锁 |
页锁 | 针对整页数据的锁 |
行锁 | 针对一个数据行的锁 |
键锁 | 在索引中的一个键值上的锁 |
- 锁类型:GBase 8s支持多种类型的锁,包括共享锁、排他锁、提升锁。
- 支持自动解死锁:GBase 8s对死锁的管理十分智能化,可通过数据库锁资源的相关设置,使得数据库具有自动解死锁功能。
隔离级别
GBase 8s提供以下5个隔离级别:
隔离级别 | 说明 |
---|---|
Dirty Read | 脏读级别,这个并发性级别不锁定任何行。 |
Committed Read | 提交读,这个级别不锁定任何行,但如果有人执行更新或在行上使用排他锁,它将失败。 |
Cursor Stability | 游标固定,在选择的行上加共享锁,因此当有用户正在读取某行时,其他用户就不能更新它。 |
Repeatable Read | 可重复读,为每个读取的行加共享锁,使这些行不能再被更改,重复读取将返回同样的记录和值。 |
Last Committed Read | 最后提交读,与提交读相似;不过,当读取已更新某个行时,将从日志中读取最近提交的记录。 |
分片和索引
分片技术
分片技术也成为表分区技术,GBase 8s支持多种分片方式:轮询分片、表达式分片、哈希分片、范围分片和列表分片等。其中常见分片表达式有:基本表达式、Mod运算表达式、Remainder、List、Interval表达式,GBase 8s所提供的基于 Interval 的分片策略,将根据 Insert 记录的情况自动扩展分片,从而提供更为灵活的方式,减少人工维护。
另外,GBase 8s支持数据库表的二级分区技术,同时支持建立分区索引。
索引技术
GBase 8s支持B+树索引、用户定义的索引等多种索引结构;拥有多种索引类型包括:唯一索引、函数索引、簇集索引、全文索引。
GBase 8s索引除了拥有高效的查询能力外,还具备如下特性:
- 支持不影响业务的情况下,在线创建索引的能力。
- 支持中、英文分词全文检索,增量数据自动建立全文检索,无需手工维护。
- 支持索引和表可分开存储。
- 支持索引支持分片功能,具有并行扫描效果,进一步提升扫描效率。
非结构化数据支持
GBase 8s支持非结构化数据存取驱动,对Web 2.0网站能够提供很好的支持,并提供高性能,高可用性和可扩展性。
GBase 8s在非结构化数据库支持上具有如下特点:
- 支持JSON/BSON非结构化数据格式的存储和处理,支持SQL、SQL函数、NoSQL数据库API、NoSQL数据库命令行的方式访问JSON、BSON表;
- 支持非结构化表之间的连接、创建索引;
- 支持非结构化表的事务管理和行级锁功能;
备份恢复
GBase 8s 的备份分为三个级别:
- 零级备份:全量备份。
- 一级备份:最近一次零级备份后的增量部分备份。
- 二级备份:最近一次一级备份后的增量部分备份。
GBase 8s备份与恢复的功能特点:
- 支持利用灵活的数据导入导出能力:支持全库、单表、多表批量的导入导出能力;支持表结构(包括所有数据对象)、表数据的单独导入导出能力;支持全库、单表、多表批量导出成二进制文件或文本文件,并支持将导出的文件中数据导入到数据库中;支持外部表技术,通过外部表加载和卸载数据;
- 支持备份和恢复:支持单节点数据库完全备份与恢复、增量备份与恢复、数据空间备份与恢复;支持备份数据的加密、压缩存储,支持备份数据的一致性校验。支持在线备份和恢复,并具备恢复到具体某个时间点的能力。支持多种备份存储媒体,并支持部分、完整数据库的恢复能力。可通过存储管理软件(如爱数、鼎甲等国产备份恢复软件)对数据库进行备份和恢复,具有并行地运行备份和恢复功能。具备数据库事务故障、系统故障、存储媒介故障等不同级别的可恢复能力。
- 支持数据库闪回查询,闪回查询时恢复数据,支持库级和表级等不同级别的闪回恢复;
- 支持数据库级的数据文件镜像功能。
SQL兼容
GBase 8s支持更广泛的、与多种主流数据库语法兼容的SQL使用方法。
主流数据库兼容:数据类型兼容如:varchar2、timestamp。函数兼容如:listagg()、sys_guid()等。语法兼容如:with as、insert /fisrt all,支持为表添加注释,支持为列设置默认值等。
过程化语言兼容:实现了常用语法的兼容,简单存储过程可以不改动直接在GBase 8s中创建、调用。兼容数据类型、变量声明、赋值、顺序结构、选择结构、循环结构、静态SQL、动态SQL、异常处理等语法结构。
包兼容:支持package对象,支持以DBMS开头的一系列系统内置包。